package com.yxw.yxnet_cd_center.customer_service.service;

import com.yxw.yxnet_cd_center.common.dto.PageVO;
import com.yxw.yxnet_cd_center.customer_service.dto.GroupAddDTO;
import com.yxw.yxnet_cd_center.customer_service.dto.GroupQueryDTO;
import com.yxw.yxnet_cd_center.customer_service.dto.StatusUpdateDTO;
import com.yxw.yxnet_cd_center.customer_service.vo.YxCsGroupVo;

/**
 * 工作组管理
 * @author liuxin
 * @date 2023.09.15
 */
public interface GroupService {

    /**
     * 工作流管理-工作组列表查询
     * @param dto
     * @return
     */
    PageVO<YxCsGroupVo> getGroupList(GroupQueryDTO dto);

    /**
     * 工作流管理-新增工作组
     * @param dto
     * @return
     */
    YxCsGroupVo addGroup(GroupAddDTO dto);

    /**
     * 更新工作组
     * @param dto
     */
    void updateGroup(GroupAddDTO dto);

    /**
     * 删除工作组
     * @param groupId
     */
    void deleteGroupById(Long groupId);

    /**
     * 工作组分群-工作组列表查询
     * @param dto
     * @return
     */
    PageVO<YxCsGroupVo> getFlockGroupList(GroupQueryDTO dto);

    /**
     * 工作组启用/禁用
     * @param dto
     */
    void updateGroupStatusById(StatusUpdateDTO dto);

    /**
     * 工作流管理-工作组详情查询
     * @param groupId
     * @return
     */
    YxCsGroupVo getGroupById(Long groupId);
}
